package models

import (
	"fmt"
	"github.com/astaxie/beego/orm"
)

type SceneVersion struct {
	Id          int64  `orm:"pk;auto;column(id)"` // 自增ID
	SceneId     int64  `orm:"size(11)"`           // 场景ID
	RealSceneId int64  `orm:"size(11)"`           // 场景ID
	Version     string `orm:"size(255)"`          // 版本号
}

// 获取模型名称
// 获取模型表名
func (m *SceneVersion) TableName() string {
	return "scene_version"
}

// 查询方法
func (m *SceneVersion) Query() orm.QuerySeter {
	return orm.NewOrm().QueryTable(m)
}

// 添加用户
func (m *SceneVersion) Insert() error {

	versionMod := m

	err := versionMod.Query().Filter("scene_id", m.SceneId).Filter("version", m.Version).One(versionMod)
	if err == nil {
		fmt.Println("已存在")
		return err
	}

	_, err = orm.NewOrm().Insert(m)
	if err != nil {
		return err
	}
	return nil
}

// 删除用户
func (m *SceneVersion) Delete() error {
	_, err := orm.NewOrm().Delete(m)
	return err
}

// 修改用户信息
func (m *SceneVersion) Update(fields ...string) error {
	_, err := orm.NewOrm().Update(m, fields...)
	return err
}

func (m *SceneVersion) GetObjectById(id int64) (*SceneVersion, error) {
	err := m.Query().Filter("id", id).One(m)
	return m, err
}

func (m *SceneVersion) GetVersionBySceneIdAndVersion(sceneId int64, version string) (*SceneVersion, error) {
	err := m.Query().Filter("scene_id", sceneId).Filter("version", version).One(m)
	return m, err
}

func (m *SceneVersion) GetVersionAll() []*SceneVersion {
	list := make([]*SceneVersion, 0)
	_, _ = m.Query().All(&list)
	return list
}

// 获取全部用户
func (m *SceneVersion) GetAllSceneVersion() []*SceneVersion {
	info := SceneVersion{}
	list := make([]*SceneVersion, 0)
	_, _ = info.Query().All(&list)
	return list
}
